---
title: ClaimActivityPopup note capture
summary: Captures Category/Type and note text for a Claim Activity note and returns it to the hosting page.
status: draft
owner: <owner>
last_reviewed: 2026-08-21
library: SAIF.Presentation.Web.Controls.PopUps.Infragistics111
reference_type: package
operation_id: OP-1
trigger: Hosting page sets Active = True (and typically TaskID, NoteText, optional default codes) then triggers a re-render.
---

# ClaimActivityPopup note capture

This operation captures a Category, Type, and free-text note for a Claim Activity, using cached code-table lookups, and confirms the entry back to the hosting page.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-1 |
| **Trigger** | Hosting page sets `Active = True` (and typically `TaskID`, `NoteText`, optional default codes) then triggers a re-render. |
| **Inputs** | `TaskID`, `NoteText`, `DefaultCategoryCode`, `DefaultTypeCode` |
| **Outputs** | `ConfirmAction(True, ClaimNoteEventArgs)` raised on confirmation; no persistence performed by this control |
| **Primary components** | `ClaimActivityPopup.CreateChildControls`, `ClaimActivityPopup.LoadCodeTables`, `ClaimActivityPopup.LoadDropDowns`, `ClaimActivityPopup.YesButtonClick` |
| **Entry point** | `SAIF.Presentation.Web.Controls.PopUps.Infragistics111\ClaimActivityPopup.vb` |

## Steps

1. `CreateChildControls()` calls `LoadCodeTables()`, which loads (or reads from an 8-hour `HttpContext.Cache` entry keyed `ClaimActivityCategoryCodes`/`ClaimActivityTypeCodes`) two code collections via `clsCodeCollection.GetCodeCollection(...)` and `clsClaimActivityTypeCodeCollection.GetCodes(...)` — these calls delegate to the referenced `SAIF.Business`/`SAIF.Business.View.Claim` packages and are not traced further in this library's scope**.
2. Parses `ClaimActivityPopup.ascx` and locates `ddlCategory`, `ddlType`, `chkExternalView`, `cmdYes` child controls; wires `ddlCategoryCodeIndexChanged` and `YesButtonClick` handlers.
3. On `PreRender`, if `Active`, calls `LoadDropDowns()` to bind the Category dropdown (and the Type dropdown filtered by category) if not already populated, applying `DefaultCategoryCode`/`DefaultTypeCode` as the initial selection.
4. On Category change (`ddlCategoryCodeIndexChanged`):
   - Re-filters and rebinds the Type dropdown for the newly selected category.
   - Sets the `chkExternalView` checkbox from the category's `LongDescription` flag ([BR-POPUP-002](../business-rules.md#br-popup-002-external-view-flag-is-auto-derived-from-the-selected-claim-activity-category)).
5. `Render()` truncates `NoteText` to 200 characters for display (full text kept in `ToolTip`), positions the popup per `Top`/`Left`, re-enables the controls, and renders the composed markup; registers a startup script to focus the Category dropdown.
6. On `cmdYes` click (`YesButtonClick`) ([BR-POPUP-001](../business-rules.md#br-popup-001-claim-activity-note-requires-category-and-type-selection-before-confirmation)):
   - Builds a `ClaimNoteEventArgs` from the current `TaskID`, selected category/type, `chkExternalView.Checked`, and `NoteText`.
   - Clears the dropdown items and checkbox, reloads the dropdowns, then raises `ConfirmAction(True, args)`.
   - No direct persistence occurs in this library; the hosting page's event handler is responsible for saving the note.

## Process flow

The following diagram visualizes the note-capture control flow.

```mermaid
flowchart TD
	Start([Hosting page sets Active = True]) --> Create[CreateChildControls loads code tables and ASCX]
	Create --> Bind[LoadDropDowns binds Category/Type]
	Bind --> Change{Category changed?}
	Change -->|Yes| Refilter[Rebind Type dropdown, set ExternalView flag]
	Change -->|No| Render[Render popup]
	Refilter --> Render
	Render --> Yes{User clicks OK}
	Yes -->|Yes| Build[Build ClaimNoteEventArgs]
	Build --> Confirm([ConfirmAction True raised])
	Yes -->|No further action| Hidden([Popup remains inactive until re-triggered])
```

## Failure and edge-case behavior

- No code-level guard prevents confirmation with default/empty Category or Type selections; the popup relies on a static instructional label rather than a validation check*.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

## Sources
- `SAIF.Presentation.Web.Controls.PopUps.Infragistics111\ClaimActivityPopup.vb`
- `SAIF.Presentation.Web.Controls.PopUps.Infragistics111\ClaimActivityPopup.ascx`
